package com.SWPU.service;

import com.SWPU.dao.InfoDao;
import com.SWPU.pojo.Info;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

@Service
public class InfoServiceImpl implements  InfoService{

    @Autowired(required = false)
    InfoDao infoDao;

    public HashMap<String,Object> bing(Info info){

        HashMap<String,Object> map = new HashMap<String,Object>();
        //查询数据库
        List<Info> list = infoDao.select(info);
        System.out.println(info);
        List<HashMap<String,Object>> mapList = new ArrayList<>();
        //遍历查询的数据集合
        for(Info i:list){
            HashMap<String,Object> m = new HashMap<>();
            //判断用户统计的查询数据
            if (info.getCon().equals("0")){
                //加载确诊人数
                m.put("value",i.getConfirmCount());
            }else if (info.getCon().equals("1"))
            {
                //加载治愈人数
                m.put("value",i.getCuredCount());
            }else{
                //加载死亡人数
                m.put("value",i.getDeadCount());
            }
            m.put("name",i.getProvinceName());
            //添加到构建饼图的集合里
            mapList.add(m);
        }
        //把构建好的饼图数据存到map中
        map.put("info",mapList);
        return map;
    }

    @Override
    public List<Info> selectTime() {
        return infoDao.selectTime();
    }

    @Override
    public HashMap<String, Object> zhu(Info info) {
        HashMap<String, Object> map = new HashMap<String, Object>();
        //查询数据库
        List<Info> list = infoDao.select(info);
        //构建柱状图
        List<String> xList = new ArrayList<>();
        List<Integer> yList = new ArrayList<>();

        for (Info i:list){
            //判断用户统计的查询数据
            if (info.getCon().equals("0")){
                //加载确诊人数
                yList.add(i.getConfirmCount());
            }else if (info.getCon().equals("1"))
            {
                //加载治愈人数
                yList.add(i.getCuredCount());
            }else{
                //加载死亡人数
                yList.add(i.getDeadCount());
            }

            //加载x轴数据
            xList.add(i.getProvinceName());
        }
        //把x轴数据装到map中
        map.put("x",xList);
        //把y轴数据装到map中
        map.put("y",yList);
        return map;
    }

}
